initialValue{
  return new ConcurrentHashMap<String,Object>();
}
setup{
  try {
    final BeanManager manager=(BeanManager)new InitialContext().lookup(STANDARD_BEAN_MANAGER_JNDI_NAME);
    if (manager != null && Container.available()) {
      final Bean<BoundSessionContext> sessionContextBean=(Bean<BoundSessionContext>)manager.resolve(manager.getBeans(BoundSessionContext.class,BoundLiteral.INSTANCE));
      CreationalContext<?> ctx=manager.createCreationalContext(sessionContextBean);
      final BoundSessionContext sessionContext=(BoundSessionContext)manager.getReference(sessionContextBean,BoundSessionContext.class,ctx);
      sessionContext.associate(sessionContexts.get());
      sessionContext.activate();
      final Bean<BoundRequestContext> requestContextBean=(Bean<BoundRequestContext>)manager.resolve(manager.getBeans(BoundRequestContext.class,BoundLiteral.INSTANCE));
      ctx=manager.createCreationalContext(requestContextBean);
      final BoundRequestContext requestContext=(BoundRequestContext)manager.getReference(requestContextBean,BoundRequestContext.class,ctx);
      requestContext.associate(requestContexts.get());
      requestContext.activate();
      final Bean<BoundConversationContext> conversationContextBean=(Bean<BoundConversationContext>)manager.resolve(manager.getBeans(BoundConversationContext.class,BoundLiteral.INSTANCE));
      ctx=manager.createCreationalContext(conversationContextBean);
      final BoundConversationContext conversationContext=(BoundConversationContext)manager.getReference(conversationContextBean,BoundConversationContext.class,ctx);
      BoundRequest request=new MutableBoundRequest(requestContexts.get(),sessionContexts.get());
      boundRequests.set(request);
      conversationContext.associate(request);
      conversationContext.activate();
 catch (  NamingException e) {
    WeldLogger.ROOT_LOGGER.failedToSetupWeldContexts(e);
}
teardown{
  try {
      final Bean<BoundSessionContext> sessionContextBean=(Bean<BoundSessionContext>)manager.resolve(manager.getBeans(BoundSessionContext.class,BoundLiteral.INSTANCE));
      CreationalContext<?> ctx=manager.createCreationalContext(sessionContextBean);
      final BoundSessionContext sessionContext=(BoundSessionContext)manager.getReference(sessionContextBean,BoundSessionContext.class,ctx);
      sessionContext.invalidate();
      sessionContext.deactivate();
      sessionContext.dissociate(sessionContexts.get());
      final Bean<BoundRequestContext> requestContextBean=(Bean<BoundRequestContext>)manager.resolve(manager.getBeans(BoundRequestContext.class,BoundLiteral.INSTANCE));
      ctx=manager.createCreationalContext(requestContextBean);
      final BoundRequestContext requestContext=(BoundRequestContext)manager.getReference(requestContextBean,BoundRequestContext.class,ctx);
      requestContext.invalidate();
      requestContext.deactivate();
      requestContext.dissociate(requestContexts.get());
      final Bean<BoundConversationContext> conversationContextBean=(Bean<BoundConversationContext>)manager.resolve(manager.getBeans(BoundConversationContext.class,BoundLiteral.INSTANCE));
      ctx=manager.createCreationalContext(conversationContextBean);
      final BoundConversationContext conversationContext=(BoundConversationContext)manager.getReference(conversationContextBean,BoundConversationContext.class,ctx);
      conversationContext.invalidate();
      conversationContext.deactivate();
      conversationContext.dissociate(boundRequests.get());
 catch (  NamingException e) {
    WeldLogger.ROOT_LOGGER.failedToTearDownWeldContexts(e);
 finally {
    sessionContexts.remove();
    requestContexts.remove();
    boundRequests.remove();
}
dependencies{
  return Collections.emptySet();
}
priority{ }
